package com.atguigu.gmall.product.service;


import com.atguigu.gmall.product.model.BaseAttrInfo;
import com.atguigu.gmall.product.model.SkuInfo;
import com.atguigu.gmall.product.model.SpuPoster;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.math.BigDecimal;
import java.util.List;

public interface SkuManageService {
    /**
     * 保存商品SKU信息
     * @param skuInfo
     * @return
     */
    void saveSkuInfo(SkuInfo skuInfo);

    /**
     * 根据分类ID分页查询商品SKU列表
     * @param iPage
     * @param category3Id
     * @return
     */
    IPage<SkuInfo> getSkuListByPage(IPage<SkuInfo> iPage, Long category3Id);

    /**
     * 商品SKU上架
     * @param skuId
     * @return
     */
    void onSale(Long skuId);

    /**
     * 商品SKU下架
     * @param skuId
     * @return
     */
    void cancelSale(Long skuId);

    /**
     * 根据SkuID查询sku信息以及图片
     * @param skuId
     * @return
     */
    SkuInfo getSkuInfoAndImages(Long skuId);

    /**
     * 根据SKUID查询商品最新价格
     * @param skuId
     * @return
     */
    BigDecimal getSkuPrice(Long skuId);


    /**
     * 根据SkuID查询当前商品包含平台属性以及属性值
     * @param skuId
     * @return
     */
    List<BaseAttrInfo> getAttrList(Long skuId);

    /**
     * 获取每一组销售属性对应SkuID组合 {"3736|3738":"24","3736|3739":"25",}
     * @param spuId
     * @return
     */
    String getSkuValueIdsMap(Long spuId);
}
